package com.ruoyi.user.service;

import java.util.List;
import com.ruoyi.user.domain.UserComplaints;

/**
 * 用户投诉Service接口
 * 
 * @author ruoyi
 * @date 2025-10-21
 */
public interface IUserComplaintsService 
{
    /**
     * 查询用户投诉
     * 
     * @param complaintId 用户投诉主键
     * @return 用户投诉
     */
    public UserComplaints selectUserComplaintsByComplaintId(String complaintId);

    /**
     * 查询用户投诉列表
     * 
     * @param userComplaints 用户投诉
     * @return 用户投诉集合
     */
    public List<UserComplaints> selectUserComplaintsList(UserComplaints userComplaints);

    /**
     * 新增用户投诉
     * 
     * @param userComplaints 用户投诉
     * @return 结果
     */
    public int insertUserComplaints(UserComplaints userComplaints);

    /**
     * 修改用户投诉
     * 
     * @param userComplaints 用户投诉
     * @return 结果
     */
    public int updateUserComplaints(UserComplaints userComplaints);

    /**
     * 批量删除用户投诉
     * 
     * @param complaintIds 需要删除的用户投诉主键集合
     * @return 结果
     */
    public int deleteUserComplaintsByComplaintIds(String[] complaintIds);

    /**
     * 删除用户投诉信息
     * 
     * @param complaintId 用户投诉主键
     * @return 结果
     */
    public int deleteUserComplaintsByComplaintId(String complaintId);

    /**
     * 查询当前用户的投诉列表
     *
     * @param customerId 用户ID（与表字段 customer_id 对齐）
     * @return 投诉列表
     */
    public List<UserComplaints> selectUserComplaintsListByCustomerId(String customerId);

    /**
     * 根据投诉ID与用户ID查询投诉详情（归属校验）
     */
    public UserComplaints selectUserComplaintByIdAndCustomer(String complaintId, String customerId);

    /**
     * 根据投诉ID与用户ID软删除（撤销）投诉
     */
    public int softDeleteUserComplaintByIdAndCustomer(String complaintId, String customerId, java.util.Date deletedAt, java.util.Date updatedAt);
}
